from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget,QApplication, QMessageBox,QFileDialog
from PyQt5.QtGui import QPixmap
import sys  # 导入 sys 库
import time  # 导入 time 库

from package.Utils.ui.QT_Task2Window import Ui_Form  # 导入Ui_Form类(QT设计师创建)
from package.Utils.Screen import screen   # 导入 screen 对象(python代码)
from package.Utils.log import logger,mylog  # 导入 logger 对象(python代码)
from package.Utils.task import MyTask2  # 导入 MyTask2 类(python代码)

class MyTask2Window(QWidget, Ui_Form): # 继承 QWidget类和 Ui_Form界面类
    def __init__(self, parent=None):
        super(MyTask2Window, self).__init__(parent)
        self.setupUi(self)  # 初始化界面

        self.dir_path = ''  # 文件夹路径
        self.NewWord = ''  # 新词
        self.OldWord = ''  # 旧词

    #打开文件夹
    def click_pushButton_OpenDir(self):
        self.dir_path = QFileDialog.getExistingDirectory(self, "选取文件夹", "./")
        if mylog.log_enabled is True:
            logger.info(f"成功打开文件夹,路径为:{self.dir_path}")  # 记录日志

    #开始替换
    def click_pushButton_Start(self):
        global myTask2

        self.Waring_information_msg = QMessageBox()  # 初始化 QMessageBox 对象
        self.NewWord = str(self.lineEdit_NewWord.text())  # 获取文本框内容并转换为str类型
        self.OldWord = str(self.lineEdit_OldWord.text())  # 获取文本框内容并转换为str类型
        if self.dir_path == "":  # 判断路径是否为空
            if mylog.log_enabled is True:
                logger.error("未选择正确的路径！请重新打开文件夹！")  # 记录日志
            self.Waring_information_msg.critical(self, '错误', "未选择正确的路径！请重新打开文件夹！", QMessageBox.Yes)  # 弹出错误提示框
            return
        # self.Waring_information_msg.setWindowTitle('WARING')
        # self.Waring_information_msg.setText("注意：10s后开始发送，请在10s内将鼠标移动到需要发送的窗口中并选中！,点击确定开始计时！")
        # self.Waring_information_msg.setStandardButtons(QMessageBox.Yes)
        # self.Waring_information_msg.show()
        self.Waring_information_msg.information(self, 'WRING', "注意：即将开始替换，请点击确定键继续", QMessageBox.Yes)

        if mylog.log_enabled is True:
            logger.info(f"新词:{self.NewWord},旧词:{self.OldWord}")  # 记录日志
            logger.info(f"注意：开始替换")  # 记录日志

        myTask2 = MyTask2()  # 实例化 MyTask2 类
        myTask2.run()  # 调用 MyTask2 类的 run 方法

        if mylog.log_enabled is True:
            logger.info(f"运行完成！已全部替换！")  # 记录日志
        self.Waring_information_msg.information(self, '提示', "运行完成！已全部替换！", QMessageBox.Yes)